/**
 * 重写了 StatefulWidget的 initState 和 setState 增加一个生命周期函数 layoutDidMount
 */
import 'package:flutter/widgets.dart';

mixin EnhanceLifeCycialMixin<T extends StatefulWidget> on State<T> {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      if (context == null) {
        return;
      }
      layoutDidMount(context);
    });
  }

  @override
  void setState(fn) {
    if (!mounted) {
      return;
    }
    super.setState(fn);
  }

  void layoutDidMount(BuildContext context);
}
